package com.caocaog.market.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.caocaog.market.entity.AppVersion;

/**
 * App版本控制管理
 *
 * @author chechen
 * @date 2022-03-01
 */
public interface AppVersionService extends IService<AppVersion> {

    /**
     * 查询App版本控制信息分页
     *
     * @param page     分页信息
     * @param appVersion 查询条件
     * @return App版本控制信息分页
     */
    IPage<AppVersion> queryAppVersionPage(Page<AppVersion> page, AppVersion appVersion);

    /**
     * 新增App版本控制信息
     *
     * @param appVersion App版本控制信息
     * @return 插入到数据库后生成的id
     */
    String addAppVersion(AppVersion appVersion);

    /**
     * 根据id更新App版本控制信息（缓存）
     *
     * @param appVersion App版本控制信息
     * @return 受影响行数
     */
    int updateAppVersion(AppVersion appVersion);

    /**
     * 更改强制更新
     *
     * @param appVersionId App版本控制信息id
     * @return 更改后的值
     */
    int forcedUpdate(Integer appVersionId);
    /**
     * 设置是否启用
     *
     * @param appVersionId App版本控制信息id
     * @return 更改后的值
     */
    int using(Integer appVersionId);

    /**
     * 根据id删除App版本控制信息（缓存）
     *
     * @param appVersionId App版本控制信息id
     * @return 受影响行数
     */
    int deleteAppVersion(Integer appVersionId);

    /**
     * 获取app最新版本数据
     *
     * @param type 版本类型
     * @param siteId 分站id 可以为null
     * @param userId 用户id 可以为null
     * @return app最新版本数据
     */
    AppVersion getNewAppVersion(Integer type, String siteId, String userId);

}
